مشخصه Causes Validation
نوشته شده توسط : امیر

شايد زمانی که داشتيد روی مشخصات (Properties) مربوط به Text Box نظر می کرديد، مشخصه causes Validation را نيز ديده باشيد که ما در بخش قبل از آن نام نبرديم. اين مشخصه در بسياری از VCLها نيز وجود دارد و دارای کاربرد بسيار زيبايی است که شايد اگر وجود نداشت، برای شبيه سازی آن بوسيله کدنويسی، زمان زيادی را صرف خود می کرد.

فرض کنيد بر روی فرم يک Text Box به نام txtNumber وجود دارد که برای دريافت نمره يک درس دانش آموزی از کاربر، استفاده می شود. ترجيح می دهيم کاربر نتواند اين فرم را save کند (نتواند به سراغ کليد cmdSave برود) مگر اينکه نمره صحيح (که در فاصله صفر تا بيست است،) را وارد نموده باشد. اما مثلاً بتواند روی دکمه cmdCancel برود و فرم را Cancel نمايدو يعنی می خواهيم اگر نمره در دامنه صحيح خود نبود روی برخی ديگر از آنها نرود.

اگر برای رويدادِ(Event) Validate از txtNumber ، چنين داشته باشيم:

Private Sub txtNumber_Validate (Cancel As Boolean)

          IF Val (txtNumber) > 20 then

                   Cancel = True

          End IF

End Sub

Event Procedure فوق می گويد هر وقت که txtNumber ، Validate شد، بررسی کن که آيا نمره کمتر از 20 هست يا خير که اگر نبود، پارامتر Cancel را True نمايد. حال اگر مشخصه Causes Validation از هر کنترلی را True نماييم، در صورتی که Val(txtNumber)>20 باشد، کاربر نمی تواند، آن کنترل را فوکوس دهد. لذا اگر مشخصه مذکور را برای کليد cmd Save برابر True و برای cmdCancel برابر False تغير دهيم، درصورت نبودن نمره در فاصله مناسب، کاربر می تواند عمليات دکمه Cancel را انجام دهد اما عمليات دکمه Save را خير مگر اينکه دوباره Text Box مذکور را با عددی مناسب Validate نمايد.

توجه کنيد که می توانيد برای زيبايی برنامه مذکور برای رويداد Key up از txtNumber نيز چنين داشته باشيم.

Private Sub txtNumber_KeyUp (KeyCode As Integer, shift As Integer)

          IF Value (txtNumber)>20 then

                   txtNumber. Forecolore = VBRed

          Else

                   txtNumber. Forecolore = VBBlack

          Evd IF

End Sub

که برای نمايش اينکه با وارد نودن نمره ای به کاربر خطايی رخ داده است، رنگ متن آن را به رنگ قرمز (Red) در می آوريم و در غير اينصورت (يعنی بدون خطا) رنگ متن را به رنگ سياه (Black) در خواهيم آورد.

ذکر چند مشخصه ديگر:

1-    اگر برای يک کليد (Command Button)، مشخصه Cancel را به True قرار دهيم، در صورت زدن کليد (Escape) ESC توسط کاربر، رويداد Click از اين کليد روی می دهد.

2-    اگر برای يک کليد، مشخصه Default را به True تغيير دهيم، در صورت زدن کليد Enter توسط کاربر، رويداد Click از آن روی خواهد داد.

3-    اگر برای يک فرم، رويداد Key Preview را به True تغيير دهيم، هر کليدی را کاربر از صفحه کليد فشار دهد، ابتدا اين کليد به رويداد KeyPress از فرم فرستاده می شود و آنگاه به رويداد Key Press از کنترلی که Focus در اختيار آن است، فرستاده می شود.




:: بازدید از این مطلب : 425
|
امتیاز مطلب : 26
|
تعداد امتیازدهندگان : 8
|
مجموع امتیاز : 8
تاریخ انتشار : 3 دی 1389 | نظرات ()
مطالب مرتبط با این پست
لیست
می توانید دیدگاه خود را بنویسید


نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه: